package thread;

//测试停止
//1.建议线程正常停止--->利用次数，不建议死循环（会出现死锁）
//2.建议使用标志位--->flag
//3.不使用过时方法，有bug
public class TestStop implements Runnable{

    // 1.设置标志位
    private boolean flag = true;

    @Override
    public void run() {
        int i = 0;
        while (flag){
            System.out.println("run thread...." + i++);
        }
    }

    //2.自行设置公开的停止方法，转换标志位
    public void stop(){
        this.flag = false;
    }

    public static void main(String[] args) {
        TestStop ts = new TestStop();

        new Thread(ts).start();

        for (int i = 0; i < 1000; i++) {
            System.out.println("mian" + i);
            if(i == 900){
                //切换标志位，让线程停止
                ts.stop();
                System.out.println("线程停止");
            }
        }
    }
}
